#pragma once
#include "Rect.h"

namespace ja2{ namespace sgp
{
	//! Clip rectangle.
	class ClipRectangle
	{
		// Enums
	public:
		enum ClipType
		{
			CT_NO,
			CT_PARTIAL, 
			CT_FULL,
		};

		// Attributes
	private:
		//! Rectangle.
		Rect m_Rect;
	
		// Operations
	public:
		//! Clip values.
		void clip(std::uint16_t &X1, std::uint16_t &Y1, std::uint16_t &X2, std::uint16_t &Y2);
		//! Get clip type.
		ClipType get_clip(std::uint16_t X1, std::uint16_t Y1, std::uint16_t X2, std::uint16_t Y2);
	
		// Construction/Destruction
	public:
		ClipRectangle(Rect const &Rect_);
	};
} /*sgp*/} /*ja2*/
